/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Modelo;

import Modelo.*;
import java.io.Serializable;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.LinkedList;
import javax.swing.*;

/**
 *
 * @author Alex
 */
public class ModelEmpresa implements Serializable{

	Conection con;

    public ModelEmpresa(Conection con) {
      this.con=con;
    }
	ResultSet rs;

	

	


 public LinkedList Empresas(String codigo)throws SQLException{
	LinkedList listaEmp=new LinkedList();
	PreparedStatement pstmt=null;
	ResultSet rs=null;
  	try{
      if(codigo.equalsIgnoreCase(null)){
                         pstmt = con.getCon().prepareStatement("select * from empresa");
                     System.out.print("Todos");
            }else
  		pstmt=con.getCon().prepareStatement("select * from empresa where empresa.codigo =" + codigo);
  		rs=pstmt.executeQuery();
  		while(rs.next()){
  			listaEmp.add(Empresa.Load(rs));

  		}
  	}finally{
 		if(rs!=null){
			rs.close();
		}
		if(pstmt!=null){
			pstmt.close();
			pstmt=null;
		}
	}

	return listaEmp;
 }
  public void setNewBEmpre(Empresa emp) throws SQLException {
        if(!con.isConnect())
                throw new SQLException("no Hay Conexion");
            PreparedStatement pstmt=null;
            try{
                pstmt=con.getCon().prepareStatement("insert into Empresa values(?,?,?,?,?)");
                pstmt.setString(1, emp.getCodEmpr());
                pstmt.setString(2, emp.getNombre());
                pstmt.setString(3, emp.getNit());
                pstmt.setString(4, emp.getLugar());
                pstmt.setString(5, emp.getTelefono());
		
                
		pstmt.executeUpdate();

                }finally
                {
                    if( pstmt!=null )
                    pstmt.close();
                }
    }
   public boolean Eliminar(String codigo) throws Exception
      {

    try {
         Class.forName("com.mysql.jdbc.Driver").newInstance();

         if (con.isConnect())
         {
             PreparedStatement stmt = con.getCon().prepareStatement("delete from Empresa where Empresa.Codigo= "+codigo);
               stmt.executeUpdate();
                return true;

            }
    }
    catch(SQLException ex) {
         System.out.println(ex);
    }
    catch(ClassNotFoundException ex) {
    System.out.println(ex);  }
    return false;
    }
    public void setUpdateEmpresa(Empresa empre )throws SQLException{
            if(!con.isConnect())
		throw new SQLException("No conexion");
            if(!Existe(empre.getCodEmpr()))
                throw new SQLException("Existe una empresa registrado con este codigo, \nPorfavor seleccione Otro");
                PreparedStatement pstmt=null;
                try{
                    pstmt=con.getCon().prepareStatement("update Empresa set Codigo=?, Nombre=?, Nit=?, Lugar=?, Telefono=? where Codigo="+ empre.getCodEmpr());
                    pstmt.setString(1,empre.getCodEmpr());
                    pstmt.setString(2,empre.getNombre());
                    pstmt.setString(3,empre.getNit());
                    pstmt.setString(4,empre.getLugar());
                    pstmt.setString(5,empre.getTelefono());
                    pstmt.executeUpdate();
                }finally
                {
                    if( pstmt!=null )
                        pstmt.close();
                }
         }

    public boolean Existe( String codigo ) throws SQLException{
            if( !con.isConnect() )
                    throw new SQLException("no conexion");
            boolean sw=true;
            PreparedStatement pstmt=null;
            ResultSet rs=null;
            try{

                            pstmt=con.getCon().prepareStatement("select count(*) from Empresa where Codigo=?");

                    pstmt.setString(1,codigo);
                    rs=pstmt.executeQuery();

                    if(rs.next()){
                        if(String.valueOf(rs.getString(1)).equals("0"))
                            sw=false;
                    }
            }finally{
                    if(rs!=null)
                            rs.close();

                    if(pstmt!=null)
                            pstmt.close();
            }
            return sw;
    }
   
}// fin clase model
